Book Summary and Reviews of The Jackal's Mistress by Chris Bohjalian

The Jackal's Mistress by Chris Bohjalian

The Jackal's Mistress

A Novel

by Chris Bohjalian

  • Critics' Consensus (4):
  • Readers' Rating (18):
  • Published:
  • Mar 2025, 336 pages
  • Rate this book

About this book

Book Summary

In this Civil War love story, inspired by a real-life friendship across enemy lines, the wife of a missing Confederate soldier discovers a wounded Yankee officer and must decide what she's willing to risk for the life of a stranger, from the New York Times bestselling author of such acclaimed historical fiction as Hour of the Witch and The Sandcastle Girls.

Virginia, 1864—Libby Steadman's husband has been away for so long that she can barely conjure his voice in her dreams. While she longs for him in the night, fearing him dead in a Union prison camp, her days are spent running a gristmill with her teenage niece, a hired hand, and his wife, all the grain they can produce requisitioned by the Confederate Army. It's an uneasy life in the Shenandoah Valley, the territory frequently changing hands, control swinging back and forth like a pendulum between North and South, and Libby awakens every morning expecting to see her land a battlefield.

And then she finds a gravely injured Union officer left for dead in a neighbor's house, the bones of his hand and leg shattered. Captain Jonathan Weybridge of the Vermont Brigade is her enemy—but he's also a human being, and Libby must make a terrible decision: Does she leave him to die alone? Or does she risk treason and try to nurse him back to health? And if she succeeds, does she try to secretly bring him across Union lines, where she might negotiate a trade for news of her own husband?

A vivid and sweeping story of two people navigating the boundaries of love and humanity in a landscape of brutal violence, The Jackal's Mistress is a heart-stopping new novel, based on a largely unknown piece of American history, from one of our greatest storytellers.

Please be aware that this discussion guide will contain spoilers!
  1. In the novel's opening scene, Libby and Joseph survive in part because the intruder underestimates them. In the many daring encounters they experience together, how do they turn their vulnerable identities into an advantage? How do they disguise their strength?
  2. Libby excels in the men's world—from running the mill and defending her loved ones to negotiating with Union troops. As a newcomer and an interloper, what made her a good match for her husband, Peter?
  3. How do Sally and Joseph endure the traumas of their past, and the constant threats they face throughout the novel? What sustains their devotion to each other?
  4. How did literature prepare Weybridge for the horrors and contradictions he would witness as a...
Please be aware that this discussion may contain spoilers!

See what our members are saying about this book in our Community Forum.

What books have you enjoyed so far in 2025, what books are you looking forward to reading?
...s of July, 2025: The Love Elixir of Augusta Stern by Lynda Cohen Loigman; When we Flew Away by Alice Hoffman; The Frozen River by Ariel Lahon–reread; The Jackal's Mistress by Chris Bohjalian; The Ride of Her Life by Elizabeth Letts; Remarkably Bright Creatures by Shelby Van Pelt The Book of Everlasting Things by Aanchal Malhotra; and Less...
-Sunny


Overall, what did you think of The Jackal’s Mistress? (no spoilers, please!)
The writing and storyline told is superb, I will definitly delve into more books by Chris Bohjalian. I love historical fiction, especially when based (loosely or not) on a true event. My imagination runs wild with good descriptive narrative.
-Mary_H1


Last chance!
Chris Bohjalian, author of The Jackal's Mistress and 24 other novels, has very kindly agreed to keep participating in our Ask the Author discussion through Monday morning (4/21). If there's a question you'd like to ask him, now's the time. Don't be shy - Chris is a really nice guy and has been ve...
-kim.kovacs


BookBrowsers Ask Author Chris Bohjalian
… and I especially thank you for writing so many STRONG women. Libby, Sally and Jubilee in The Jackal's Mistress were all so competent, even when they were scared, and when I think back on your other heroines it seems they're at least as courageous as the men, if not more so.
-kim.kovacs


Libby, Emily, and Jubilee all have to endure months of not knowing the fates of their loved ones who are at war. In their situation, is hope a positive force, or is it a liability?
I think that hope sustained them while the men were at war. Having read many books about the war, I'm sure the men were as concerned for their own being as were their loved ones. They needed to have hope as well.
-Shirley_Fentz


When did you discover the novel is based on a true story? Did it change your opinion of the work, or how you approached it? What did you think of the points at which the author deviated from history?
I also enjoy historical fiction, as many of your readers do! I allows me to learn about parts of history that were ignored throughout my years of education. It continues to frustrate me that we are fed the same historical facts year after year in school when there is so much more to explore.
-Ilene_M


What audience would you recommend The Jackal’s Mistress to? Is there another book or author you feel has a similar theme or style?
I enjoyed the historical fiction aspect of this book. There are also numerous "what if" sort of topics that book clubs could discuss. I thought the moral dilemma of harboring/caring for the enemy is one for discussion. The concept of having hope in the face of adversity is a hard thing, especiall...
-Carol_Reedstrom


Upcoming author interviews
I'm very excited to announce that we have two authors that will be joining BookBrowsers for Q & A sessions in the next few weeks: https://www.bookbrowse.com/biographies/index.cfm/author_number/183/chris-bohjalian Chris Bohjalian , author of many bestsellers including The Jackal's Mistress - April...
-kim.kovacs


Weybridge tries to help Jubilee understand the abolitionist cause, while later, Joseph gives Weybridge a grim dose of reality about what life will be like after the war. What perpetuated the system that kept Joseph and Sally from being truly free?
Greed by southern slave holders and the belief that Black people were not fully human
-Tami_H


If you’ve read other books by this author, how do they compare to this one? How, in your opinion, does his writing bring to life the intersection of chance and choice?
I believe I have read every book by Chris Bohjalian. I would put this one up there with the best. I am always impressed by the author writing so well about women.
-Tami_H


Why do you think Dr. Norton was willing to treat Weybridge? Do you think his motivation was from self-interest or was there more to it?
Wholeheartedly agree. I was actually surprised that he "managed" to keep the secret.
-Dianne_F


What surprising details did you learn? What family stories of war and survival have been passed down to you? How do those lives and stories compare with the ones in the novel? In what ways can fiction sometimes reveal the truth more fully than nonfiction?
My family history of war goes all the way back to the Revolutionary War. I have relatives who fought in every war since then except for the Korean War. My grandfather, a WW1 veteran talked at great length about his experiences as well as my father who was a WW2 veteran. Only those family members ...
-Dianne_F


Is there a quote or scene in The Jackal’s Mistress that stood out for you? Why do you suppose it resonated?
I really liked the quote from Johnathan when he is feeling the anticipations of violence "Or maybe it was just the fact that man was a monster. Perhaps God, whatever or whomever he was, had not created us in his image, but instead saw us more like the minotaur, part man and part bull, or the anim...
-Jo_S


Weybridge writes cheerful letters home to his wife because “he saw no reason to share the brutality and the toll it was taking on him.” Do you think he was right to conceal the truth? What would you have done in his place?
Well, I would want to know it all! I can see why he thought he was sparing her and I do not really know his wife's nature but I would have wanted to know the truth no mater the grimness. When you love someone you want to be there 100% for them and you can't do that on half truths.
-Jo_S


Who are the Henry Morgans and John Mosbys of the modern world, waging brutality under the guise of civility?
Unfortunately, I agree with all of the above! The President has made it ok for many people to show their feelings of racism and desire for an all white nation. Very scary to think how things will look during these 4 years and I truly feel for minorities and anyone on the fringe. It is a time for ...
-Becky_S


Ultimately, what do you think Libby’s real motivation was in protecting Weybridge? Would you have been willing to take that risk for a stranger?
I agree with the majority on this…I felt her first motivation was just to do a good things, but later felt he could be a bargaining chip for her husband, and then when she began to have feelings for him, wanted to keep him alive due to her love.
-Becky_S


What did you think of Weybridge’s soldiers leaving him to die? Were they right to do so under the circumstances? What decision would you have made, do you think?
I think that for that time period, it was probably a very accurate account of what would have happened…it may seem heartless to us, but in times of war, the soldiers had to think of the good of all and not get caught up in saving each individual. Im not sure what decision I would have made… it wo...
-Becky_S


Jubilee calls Weybridge “Jackal” because she is wary of the enemy’s cunning ways. How does their relationship reflect the precarious balance of trust that teeters on other aspects of the storyline, on land where dominance and control kept changing hands?
Throughout the story, all the characters are in precarious positions. There is a need to trust each other even though there is a possibility of danger since the "other" is an enemy in some way or other. I loved Julbilee's courage to speak out to Weybridge while also being cautious because he was ...
-Wendy_F


In the opening, Libby and Joseph survive in part because the intruder underestimates them. In the many daring encounters they experience together, how do they turn their vulnerable identities into an advantage? How do they disguise their strength?
They assume the roles that society has assigned to them, for the most part. Joseph shows deference to the white interlopers who threaten them, remaining in the role/place to which they have constrained him. It is difficult to read about the way they seek to rob him of his dignity and inherent wor...
-Janie-Hickok-Siess


As you read the epilogue, how did you react? What was erased in the aftermath of the Civil War? What persisted?
I was not surprised that Libby had a child or that Peter believed, supposedly, that the child was his. I was also not surprised that Jubilee remained with them and her father was killed, nor that Jubilee, then 80 years old, had such a strong reaction to the "Last Review." I have heard about those...
-Janie-Hickok-Siess


How do Sally and Joseph endure the traumas of their past, and the constant threats they face throughout the novel? What do you think sustains their devotion to each other?
Joseph and Sally were happy to be free, but their freedom wasn't complete. Certainly, their circumstances with Libby were far better than they had been with Peter's father. But they carried the memories of having been enslaved and were determined never to be enslaved again. They lived in constant...
-Janie-Hickok-Siess


Libby excels in the men’s world—from running the mill and defending her loved ones to negotiating with Union troops. As a newcomer and an interloper, what made her a good match for her husband, Peter?
Peter rejected his family's traditions, freeing all those who were enslaved on his family's plantation. Libby, like her husband, was an abolitionist, and held her beliefs despite disparagement and ostracism from the community. They worked side by side on their land and truly loved & respected eac...
-Janie-Hickok-Siess


How do you feel literature prepares Weybridge for the horrors and contradictions he would witness as a soldier? How did he maintain stamina in both mind and body, in your opinion?
Jonathan was a scholar and saw the parallels between great literature (some based in reality) and the war. He was motivated to survive by many factors, not the least of which was his marriage and children. He wanted desperately to return home and, along with his wife, Emily, raise their two sons....
-Janie-Hickok-Siess


What transformations does Libby undergo during the final showdown in chapter 23? What does the scene reveal about her essence, and the essence of the community she married into?
In my opinion, Libby goes through a transformation prior to chapter 23. That chapter illustrates the fruit of that transformation. Earlier, she decides she has had enough and is not going to run, at which point they devise a strategy (that doesn't actually work). But she is determined to stand he...
-Janie-Hickok-Siess


About the The Jackal's Mistress category
Please join BookBrowse in our book club discussion of The Jackal's Mistress by Chris Bohjalian.
-system

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Reviews

Media Reviews

"A compelling story about two people who long for their spouses in a time of war." —Kirkus Reviews (starred review)

"This page-turner from bestselling Bohjalian…will not disappoint fans of American Civil War narratives. The vividly drawn characters and historical details make for a compelling read." —Library Journal (starred review)

"Bohjalian skillfully rachets up the tension as rumors spread of a Union officer on the loose and Libby and the captain grow close. Readers will be glued to the page." —Publishers Weekly

This information about The Jackal's Mistress was first featured in "The BookBrowse Review" - BookBrowse's membership magazine, and in our weekly "Publishing This Week" newsletter. Publication information is for the USA, and (unless stated otherwise) represents the first print edition. The reviews are necessarily limited to those that were available to us ahead of publication. If you are the publisher or author and feel that they do not properly reflect the range of media opinion now available, send us a message with the mainstream reviews that you would like to see added.

Any "Author Information" displayed below reflects the author's biography at the time this particular book was published.

Reader Reviews

Write your own reviewwrite your own review

Donna_M

Based on fact unusual Civil War Story
Chris Bohjalian’s books are always good reads with unusual but valid situations and clear understanding of human nature. Plus, the man writes well and knows how to tell a story. The Jackal’s Mistress (title explained in book) recounts the story of a seriously wounded captain from Vermont who was saved by a woman in Virginia, her niece, and two freed Blacks.

The reader experiences the horrors of war and the terror of having a Yankee soldier hidden in a Confederate house. The characters are well drawn and entertainingly presented. The book offers many areas of discussion for book clubs. Very highly recommend.

Rebecca_Gaulton

Bohjalian at his best
I have a complicated relationship with Bohjalians books. To me, they are either very good like Hour of the Witch or meh, like the Princess of Las Vegas. So I went into this book with caution but with hope. I’m glad to say I was pleasantly surprised.

Kudos to Bohjalian for always doing impeccable research. During the Civil War, Libby, after a short marriage, is left by herself with only her niece and her two freed slaves when her husband heads off to fight for the rebels. A Union soldier who is gravely injured enters their lives.

Despite their distrust of the Northerner, they do everything in their power to save him at the risk of their own lives. The book does head to the cliched as Libby and Jonathan, the jackal, do fall in love as Libby comes to grip with the realization that her husband is most likely dead. But the ending is a surprise and not cliched in the least. Based on a true story, I think this is one of Chris Bohjalians best.

Rebecca_M

Favorite Author, Great Story
A favorite author, historical fiction & civil war- hit some spots!

This book takes place in the latter stages of the Civil War in Virginia. Libby, her niece & her 2 freed slaves run a grist mill & supply flour to the Confederacy. Her husband is away fighting & she knows he has been captured but no updates for a very long time. There are parts of this that I will not share in the review as people should find out as they read it.

I loved the research that the author has done for this book & he shares background information at the end of the book.

I found it to move along quickly, love a strong female main character & a tie in with Vermont!

Jim_Traxler

The Right Thing to Do
This Civil War-era novel by Chris Bohjalian is based on the true story of a Virginia woman who rescued and brought back to health a Vermont lieutenant left to die in a neighboring house when the Union retreated from that area of Virginia. What is the right thing to do? This is a continuing theme and dilemma for Libby, the Virginia woman whose husband had been captured and was in a Union prison camp somewhere. Her choices were: 1) Hide him and try to get him back over the Union front lines? 2) Turn him over to the rebel army, where he would likely be killed? She had the decency to choose #1, at great risk to her own life and her family if he were discovered.

This was a well-written novel and a page-turner. The character development was well done and the harsh realities of the Civil War times were well-researched and weaved throughout the story.

I especially liked the author's notes at the end, relating the real story and what changes he made to the story in the novel. I highly recommend the book for your reading pleasure. Thanks to BookBrowse and NetGalley for a pre-publication copy of the novel.

Janice_A

Review of The Jackal's Mistress
I found this book interesting while learning more about the struggle of slaves in the United States. The story depicted the cruelty of war, particularly the Civil War, and the treatment of Blacks during that time. This is a good historical fiction book for people who want to increase their knowledge of systemic racial prejudice in the U.S.

jillg

Inspired By A True Story
The Jackal's Mistress by Chris Bohjalian

Thank you to BookBrowse and NetGalley along with the publisher, Doubleday Books for the ARC to read.

This historical fiction read is inspired by a true story and set in Virginia near the end of the Civil War.

4.5 stars
We are introduced to Libby Steadman who is struggling to keep the farm and gristmill running, while her husband, Peter, is fighting for the Confederacy. She has the help of a formerly enslaved married couple, Joseph and Sally, along with her saucy and precocious niece, Jubilee.

Upon finding a severely injured Union officer, Jonathon Weybridge, Libby has impossible choices to make; does she leave him to die, or try to nurse him back to health and try to negotiate a trade for her husband? How can she hide him so no one knows? The characters are memorable and brought to life by Chris Bohjalian’s writing.

I was fully invested in this compelling story right from the start. Chris Bohjalian is a great storyteller and this was such an enjoyable read. Make sure to read the author’s note at the end. I always look forward to what Chris Bohjalian does next.

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Author Information

Chris Bohjalian Author Biography

Chris Bohjalian is the #1 New York Times bestselling author of twenty-five books, including The Jackal's Mistress, Midwives, Hour of the Witch, and The Flight Attendant, which was an Emmy-winning MAX series starring Kaley Cuoco. His novels Secrets of Eden, Midwives, and Past the Bleachers were made into mov­ies, and his work has been translated into more than thirty-five languages. His novels have been chosen as Best Books of the Year by numerous newspapers and magazines, and been selections of Oprah's Book Club and the Barnes & Noble Book Club. He is also a playwright. He lives in Vermont and can be found at chrisbohjalian.com or on many social networks, @chrisbohjalian.

Author Interview
Link to Chris Bohjalian's Website

Name Pronunciation
Chris Bohjalian: boh-JAIL-yen

Other books by Chris Bohjalian at BookBrowse
  • The Sandcastle Girls jacket

17 more...

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Read-Alikes

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

BookBrowse Book Club

Book Jacket
The Cover Girl
by Amy Rossi
Find them early enough, and they will always be her girls.

Members Recommend

  • Book Jacket
    The Sister's Curse
    by Nicola Solvinic
  • Book Jacket
    The Lost Story of Eva Fuentes
    by Chanel Cleeton
    A mysterious book links three women across generations in this novel by New York Times bestselling author Chanel Cleeton.
  • Book Jacket
    The Vanishing Place
    by Zoë Rankin
Who Said...

Use what talents you possess: The woods would be very silent if no birds sang there except those that sang best

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /bb_briefs/detail/index.cfm
Time Stamp 31-May-26 10:42 PM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780267336598 ms 1.7802673366E+012 ms 1 /root/website/app_server.cfm
1273 ms 1273 ms 1 /root/website/bb_briefs/detail/index.cfm
422 ms 422 ms 1 /root/website/bb_briefs/detail/dsp_main.cfm
239 ms 239 ms 1 /root/website/queries/qry_get_discussion_by_id.cfm
184 ms 184 ms 1 /root/website/app_layout.cfm
176 ms 44 ms 4 /root/website/adsystem/adsystem_mod.cfm
164 ms 164 ms 1 /root/website/queries/qry_get_briefs_reader_rating.cfm
137 ms 137 ms 1 /root/website/app_globals.cfm
99 ms 99 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
65 ms 65 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
59 ms 59 ms 1 /root/website/adzones/showcase_track.cfm
53 ms 53 ms 1 /root/website/adzones/AdZone6.cfm
53 ms 53 ms 1 /root/website/queries/qry_get_active_obc.cfm
41 ms 41 ms 1 /root/website/adzones/AdZone11.cfm
37 ms 9 ms 4 /root/website/site/blocks/membership_advantages.cfm
36 ms 9 ms 4 /root/website/queries/qry_get_member_account_types.cfm
31 ms 31 ms 1 /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm
27 ms 27 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
26 ms 26 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
26 ms 26 ms 1 /root/website/queries/qry_get_current_competition.cfm
25 ms 25 ms 1 /root/website/adzones/AdZone3.cfm
23 ms 23 ms 1 /root/website/queries/qry_get_preview_awards_by_id.cfm
22 ms 22 ms 1 /root/website/queries/qry_get_books_by_briefs_category.cfm
19 ms 19 ms 1 /root/website/queries/qry_get_preview_by_id.cfm
16 ms 16 ms 1 /root/website/queries/qry_get_obc_number.cfm
13 ms 3 ms 5 /root/website/actions/act_spider_tracker.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
12 ms 12 ms 1 /root/website/actions/adstatus.cfm
10 ms 10 ms 1 /root/website/act_check_login.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_author_bookcount.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_liked_by_brief_id.cfm
10 ms 10 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
1 ms 1 ms 1 /root/website/site/blocks/dsp_top_brief_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
0 ms 0 ms 1 /root/website/site/blocks/act_book_view_tracking.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
1274 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 22:42:16.016
SELECT	a.bot_number
        FROM	bots a
        WHERE	charindex(a.bot_name, ?) > 0
		OR a.bot_ip = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Parameter #2(cf_sql_varchar) = 127.0.0.1

get_member_info (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 22:42:16.016
select 	a.*, 
    		b.member_account_type_name, b.member_account_type_charge, b.member_account_type_charge_frequency,  b.member_account_type_months, 
            c.member_chargetype_name, c.member_chargetype_number, a.member_classification_number, a.member_book_format
	
    from members a, member_account_types b, member_chargetype c
	
    where a.member_account_type_number = b.member_account_type_number
	and a.payment_method_id = c.member_chargetype_number
	and a.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

adactive (Datasource=bookbrowse_com_new, Time=12ms, Records=2) in /root/website/actions/adstatus.cfm @ 22:42:16.016
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 22:42:16.016
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=13ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 22:42:16.016
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:42:16.016
SELECT 	TOP 1 	x.competition_number, x.bb_briefs_flag
	from			competitions x
	
		WHERE	x.competition_dt <= getdate()
		AND		x.competition_expiration_dt > dateadd(d,-1,getdate())
get_current_competition (Datasource=bookbrowse_com_new, Time=13ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:42:16.016
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

		WHERE		x.competition_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=0ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 22:42:16.016
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
INNER JOIN ezine_preview_categories c ON b.ezine_preview_category_number = c.ezine_preview_category_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND getdate() < arc_off_ad_dt

ORDER BY a.arc_on_ad_dt DESC
get_future_obc (Datasource=bookbrowse_com_new, Time=14ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 22:42:16.016
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=10ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 22:42:16.016
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=25ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 22:42:16.016
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_preview_by_id (Datasource=bookbrowse_com_new, Time=10ms, Records=1) in /root/website/queries/qry_get_preview_by_id.cfm @ 22:42:16.016
select 			a.ezine_preview_number,
				a.ezine_number, 
				a.ezine_preview_category_number, 
				a.ezine_preview_title, 
				a.ezine_preview_subtitle, 
				a.ezine_preview_author, 
				a.ezine_preview_publisher,
				a.ezine_preview_publish_dt,
				a.ezine_preview_number_of_pages, 
				a.ezine_preview_jacket_image,
				a.ezine_preview_reviews,
				a.ezine_preview_short_summary,
				a.ezine_preview_jacket_desc,
				a.ezine_preview_reading_guide,
				a.ezine_preview_bb_comments, 
				a.ezine_preview_isbn,
				a.ezine_preview_isbn13,
				a.ezine_preview_rating,
				a.ezine_preview_bb_link,
                a.ezine_preview_bb_author_link,
                a.ezine_preview_firsts_flag,
                a.ezine_preview_reading_level,
                a.ezine_preview_paperback_flag,
				b.*,
                c.ezine_dt, c.ezine_description
,(select publisher_holding_company from publishers where ezine_preview_publisher like publisher_imprint AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
 				
from ezine_previews a 
inner join ezine_preview_categories b ON b.ezine_preview_category_number = a.ezine_preview_category_number
left join ezines c ON c.ezine_number = a.ezine_number

where ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258

get_author_name (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_preview_by_id.cfm @ 22:42:16.016
SELECT author_number, 
        CASE WHEN datalength(author_middle_initial) > 0 then author_first_name + ' ' + author_middle_initial + '. ' + author_last_name
            ELSE author_first_name + ' ' + author_last_name
            END "author_name"
        FROM authors 
        WHERE author_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 183

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=22ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 22:42:16.016
select a.book_award_number, a.book_award_name, a.book_award_image, c.book_award_dt
    from book_awards a 
    inner join book_awards_category b on b.book_award_number = a.book_award_number
    inner join book_awards_mapping c on c.book_awards_category_number = b.book_awards_category_number
    where ezine_preview_number =  ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258

get_briefs_reader_rating (Datasource=bookbrowse_com_new, Time=163ms, Records=1) in /root/website/queries/qry_get_briefs_reader_rating.cfm @ 22:42:16.016
SELECT	(CAST(AVG(CAST(rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) >= 50 AND right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
			ELSE 0
			END) AS "avrating",
            count(rating) as "ratcount"
            
	FROM (
		SELECT reader_review_rating AS rating
		FROM reader_reviews
		WHERE ezine_preview_number = ?
		
		AND reader_review_rating > 0
		
		UNION ALL
		
		SELECT reading_list_book_rating AS rating
		FROM reading_lists
		WHERE book_number LIKE 'p%'
		AND TRY_CAST(SUBSTRING(book_number, 2, LEN(book_number)) AS INT) = ?
		AND reading_list_book_rating > 0
		AND TRY_CAST(SUBSTRING(book_number, 2, LEN(book_number)) AS INT) IS NOT NULL
	) combined_ratings
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258
Parameter #2(CF_SQL_INTEGER) = 20258

get_reader_reviews_by_preview_number (Datasource=bookbrowse_com_new, Time=31ms, Records=6) in /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm @ 22:42:16.016
SELECT 		a.reader_review_number, a.book_number, a.ezine_preview_number, a.reader_review_approved_flag, a.reader_review_dt,
				COALESCE(NULLIF(LTRIM(RTRIM(m.discourse_username)), ''), NULLIF(LTRIM(RTRIM(a.reader_review_reviewer_name)), '')) AS reader_review_reviewer_name,
				a.reader_review_reviewer_email_address, a.reader_review_reviewer_from_locale, a.reader_review_recommended, a.reader_review_rating, a.reader_review_title, a.reader_review_description, ISNULL(a.like_count, 0) AS like_count,
    			b.ezine_preview_title,
    			ISNULL(e.edit_count, 0) AS edit_count,
    			e.last_edit_dt,
    			a.member_number AS review_member_number
    FROM 		reader_reviews a
    INNER JOIN	ezine_previews b ON a.ezine_preview_number = b.ezine_preview_number
    LEFT OUTER JOIN (
    	SELECT reader_review_number, COUNT(*) AS edit_count, MAX(edited_dt) AS last_edit_dt
    	FROM   reader_review_edits
    	GROUP BY reader_review_number
    ) e ON e.reader_review_number = a.reader_review_number
    LEFT OUTER JOIN members m ON m.member_number = a.member_number
	WHERE 		a.ezine_preview_number = ?
    AND			a.book_number = 0
    AND 		a.reader_review_approved_flag = 1
    

	ORDER BY a.reader_review_rating DESC, a.reader_review_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258

get_arc_idfk (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/queries/qry_get_discussion_by_id.cfm @ 22:42:16.016
SELECT 		a.arc_forumidfk,a.discourse_flag
    FROM 		arcs a
    INNER JOIN 	ezine_previews e on e.ezine_preview_number = a.ezine_preview_number
    
	
        WHERE 		e.ezine_preview_number = ? 
    AND DATALENGTH(a.arc_forumidfk) > 0 AND arc_obc_flag=1
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 20258

get_arc_idfk_legacy (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 22:42:16.016
SELECT 		a.arc_forumidfk,a.discourse_flag
    FROM 		arcs a
    INNER JOIN 	ezine_previews e on e.ezine_preview_number = a.ezine_preview_number
    
	
        WHERE 		e.ezine_preview_number = ? 
    AND DATALENGTH(a.arc_forumidfk) > 0 AND arc_obc_flag=1 AND a.discourse_flag = 0
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 20258

obc_discussions (Datasource=booktalk_new, Time=164ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 22:42:17.017
SELECT 		t.name,
                m.title, m.body,
                u.username, t.id,
				(SELECT COUNT(*) from booktalk_messages where threadidfk = t.id) AS	"responses"
                
    FROM 		booktalk_forums f
    INNER JOIN	booktalk_threads t on t.forumidfk = f.id
    INNER JOIN	booktalk_messages m on m.posted = t.lastpostcreated
    INNER JOIN	booktalk_users u on u.id = m.useridfk
    
    WHERE 	f.id = ?
    AND 	f.active = 1
	AND		t.active = 1
    
    ORDER BY t.name, t.messages DESC
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) =

searchResults (Datasource=bookbrowse_com_new, Time=57ms, Records=25) in /root/website/queries/qry_get_discussion_by_id.cfm @ 22:42:17.017
SELECT book_number, post_id, topic_id, blurb, username, topic_title
					FROM DiscourseSearchResults
					
        WHERE 		book_number = ? 
                    AND topic_id IS NOT NULL
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = p20258

ya_check (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 22:42:17.017
select ezine_preview_reading_level 
from ezine_previews 
where ezine_preview_number = ?
and ezine_preview_reading_level = 2
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258

get_books_by_brief (Datasource=bookbrowse_com_new, Time=9ms, Records=20) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 22:42:17.017
select 			top 20
				a.ezine_preview_reading_level,
				b.category_name,
				c.category_number, 
				d.book_number, d.book_title,
				f.author_number, f.author_first_name, author_middle_initial, author_last_name
				
from 			ezine_previews a 
inner join		categories b on b.ezine_preview_category_number = a.ezine_preview_category_number
inner join		category_book_mapping c on c.category_number = b.category_number
inner join		books d on d.book_number = c.book_number
inner join		book_author_mapping e on e.book_number = d.book_number
inner join		authors f on f.author_number = e.author_number

where			a.ezine_preview_number = ? 

order by 		d.book_number DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258

get_author_bookcount (Datasource=bookbrowse_com_new, Time=10ms, Records=17) in /root/website/queries/qry_get_author_bookcount.cfm @ 22:42:17.017
select		b.book_title as "title", 1 as "bb_flag", b.book_number as "number"
        from		book_author_mapping a
		inner join	books b on b.book_number = a.book_number
        where		a.author_number = ?
union
    	select		c.ezine_preview_title as "title", 0 as "bb_flag", c.ezine_preview_number as "number"
        from		ezine_previews c
        where		c.ezine_preview_bb_author_link = ?
        and			c.ezine_preview_bb_link = 0
		
order by title DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 183
Parameter #2(CF_SQL_INTEGER) = 183

get_obc_number (Datasource=bookbrowse_com_new, Time=16ms, Records=1) in /root/website/queries/qry_get_obc_number.cfm @ 22:42:17.017
select a.arc_forumidfk
    from arcs a
    
    	where a.ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_numeric) = 20258.0

existingResults (Datasource=bookbrowse_com_new, Time=131ms, Records=25) in /root/website/actions/udfs.cfm @ 22:42:17.017
SELECT id, last_updated
        FROM DiscourseSearchResults
        WHERE book_number = ?
        ORDER BY last_updated DESC
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = p20258

get_ads (Datasource=bookbrowse_com_new, Time=10ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone3
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=12ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone3

get_member_account_types (Datasource=bookbrowse_com_new, Time=9ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:42:17.017
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_member_account_types (Datasource=bookbrowse_com_new, Time=8ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:42:17.017
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_ads (Datasource=bookbrowse_com_new, Time=15ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone11
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=23ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone11

get_bio (Datasource=bookbrowse_com_new, Time=76ms, Records=1) in /root/website/bb_briefs/detail/dsp_main.cfm @ 22:42:17.017
SELECT 	a.author_number, author_info_biography, author_info_image, author_info_copyright_info, author_info_interview, author_pronunciation, author_info_url
                        FROM 	author_info a
                        inner join authors b on b.author_number = a.author_number
                        WHERE 	a.author_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 183

get_jacket_info (Datasource=bookbrowse_com_new, Time=14ms, Records=1) in /root/website/bb_briefs/detail/dsp_main.cfm @ 22:42:17.017
SELECT ezine_preview_jacket_image
                                    FROM ezine_previews
                                    WHERE ezine_preview_number =?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 11964

get_book_image (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/actions/udfs.cfm @ 22:42:17.017
select 	f.edition_publish_dt "hardcover_publish_dt", f.edition_jacket_image "hardcover_jacket_image", 
            g.edition_publish_dt "paperback_publish_dt", g.edition_jacket_image "paperback_jacket_image"
    
    from   	books a
	left join editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
	left join editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1
                    
    where 	a.book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2744

get_jacket_info (Datasource=bookbrowse_com_new, Time=19ms, Records=1) in /root/website/bb_briefs/detail/dsp_main.cfm @ 22:42:17.017
SELECT ezine_preview_jacket_image
                                    FROM ezine_previews
                                    WHERE ezine_preview_number =?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 14924

get_jacket_info (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/bb_briefs/detail/dsp_main.cfm @ 22:42:17.017
SELECT ezine_preview_jacket_image
                                    FROM ezine_previews
                                    WHERE ezine_preview_number =?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 18463

get_member_account_types (Datasource=bookbrowse_com_new, Time=6ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:42:17.017
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_liked_by_brief_id (Datasource=bookbrowse_com_new, Time=9ms, Records=0) in /root/website/queries/qry_get_liked_by_brief_id.cfm @ 22:42:17.017
SELECT
		ep.ezine_preview_title AS book_title,
		'p' + CAST(ep.ezine_preview_number AS VARCHAR) AS book_number,
		b.book_title AS "referenced_book_title",
		CAST(b.book_number AS VARCHAR) AS "liked_book_number",
		b.book_short_summary AS "liked_short_summary",
		CASE
			WHEN datalength(e.author_middle_initial) > 0
			THEN e.author_first_name + ' ' + e.author_middle_initial + '. ' + e.author_last_name
			ELSE e.author_first_name + ' ' + e.author_last_name
		END AS "author_name",
		(select top 1 edition_publish_dt from editions where editions.book_number = b.book_number order by edition_publish_dt DESC) AS 'sortdate',
		(select count(*) from book_author_mapping m where m.author_number = d.author_number)
		+ (select count(*) from ezine_previews where ezine_preview_bb_author_link = d.author_number and ezine_preview_bb_link =0) AS 'liked_author_bookcount',
		0 AS 'is_brief'

	FROM 		liked a
	INNER JOIN	ezine_previews ep ON ep.ezine_preview_number = ?
		AND a.book_number = ep.ezine_preview_number
	INNER JOIN	books b ON b.book_number = a.liked_book_number
	INNER JOIN	book_author_mapping d ON d.book_number = b.book_number
	INNER JOIN	authors e ON e.author_number = d.author_number

	UNION

	
	SELECT
		ep.ezine_preview_title AS book_title,
		'p' + CAST(ep.ezine_preview_number AS VARCHAR) AS book_number,
		b.book_title AS "referenced_book_title",
		CAST(b.book_number AS VARCHAR) AS "liked_book_number",
		b.book_short_summary AS "liked_short_summary",
		CASE
			WHEN datalength(auth.author_middle_initial) > 0
			THEN auth.author_first_name + ' ' + auth.author_middle_initial + '. ' + auth.author_last_name
			ELSE auth.author_first_name + ' ' + auth.author_last_name
		END AS "author_name",
		(select top 1 edition_publish_dt from editions where editions.book_number = b.book_number order by edition_publish_dt DESC) AS 'sortdate',
		0 AS 'liked_author_bookcount',
		0 AS 'is_brief'

	FROM 		readalikes_cache rc
	INNER JOIN	ezine_previews ep ON ep.ezine_preview_number = ?
		AND rc.source_book_number = 'p' + CAST(ep.ezine_preview_number AS VARCHAR)
	INNER JOIN	books b ON b.book_number = rc.recommended_book_number
	INNER JOIN	book_author_mapping bam ON bam.book_number = b.book_number
	INNER JOIN	authors auth ON auth.author_number = bam.author_number

	ORDER BY 	sortdate desc, referenced_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 20258
Parameter #2(CF_SQL_INTEGER) = 20258

get_member_account_types (Datasource=bookbrowse_com_new, Time=9ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:42:17.017
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:42:17.017
SELECT 	top 10 a.arc_number,arc_promo_text,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1
and getdate() <= dateadd(day,1,a.arc_off_ad_dt)

ORDER BY NEWID()
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=14ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:42:17.017
SELECT 	top 3 a.arc_number,arc_promo_text,
			b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
					(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
					 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
					 ELSE 0
					 END)
				from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

	FROM arcs a
	INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

	WHERE arc_closed_flag = 1
	AND arc_obc_flag = 0
	AND getdate() >= arc_on_ad_dt
	AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1

	ORDER BY a.arc_off_ad_dt DESC
get_ads (Datasource=bookbrowse_com_new, Time=30ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6

get_type (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 22:42:17.017
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=0ms, Records=4, Cached Query) in /root/website/queries/qry_get_free_newsletters.cfm @ 22:42:17.017
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=21ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
		 	AND a.adid NOT IN (?) 
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112
Parameter #3(CF_SQL_VARCHAR) = 0
Parameter #4(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=19ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=13ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:42:17.017
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/bb_briefs/detail/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFGLOBALS=urltoken%3DCFID%23%3D4075978%26CFTOKEN%23%3D11a70a91363c04ce%2D0204F8DB%2DBCA8%2D54E7%2D4B0B2ACFF33755B9%23lastvisit%3D%7Bts%20%272026%2D05%2D31%2022%3A42%3A16%27%7D%23hitcount%3D8%23timecreated%3D%7Bts%20%272026%2D05%2D31%2022%3A42%3A12%27%7D%23cftoken%3D11a70a91363c04ce%2D0204F8DB%2DBCA8%2D54E7%2D4B0B2ACFF33755B9%23cfid%3D4075978%23; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFTOKEN=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9; CFID=4075978
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/ezine_preview_number/20258/the-jackals-mistress%20jacket
PATH_TRANSLATED=/root/website/bb_briefs/detail/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/bb_briefs/detail/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4075978
cftoken=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
hitcount=16
lastvisit={ts '2026-05-31 22:42:17'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-05-31 22:42:12'}
urltoken=CFID=4075978&CFTOKEN=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
view=books
Cookie Variables:
CFCLIENT_BOOKBROWSE=order=p#member_number=0#member_active_flag=0#member_logged_in_flag=0#library_user_flag=0#view=books#
CFGLOBALS=urltoken=CFID#=4075978&CFTOKEN#=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9#lastvisit={ts '2026-05-31 22:42:16'}#hitcount=8#timecreated={ts '2026-05-31 22:42:12'}#cftoken=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9#cfid=4075978#
CFID=4075978
CFTOKEN=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
Session Variables:
cfid=4075978
cftoken=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
sessionid=BOOKBROWSE_4075978_11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
urltoken=CFID=4075978&CFTOKEN=11a70a91363c04ce-0204F8DB-BCA8-54E7-4B0B2ACFF33755B9
URL Parameters:
ezine_preview_number=20258
the-jackals-mistress%20jacket=
Debug Rendering Time: 27 ms